package com.devilvan.betrice.bilibili.po;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.devilvan.betrice.common.BasePo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import org.hibernate.annotations.DynamicInsert;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EntityListeners;
import javax.persistence.Table;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

/**
* @author Evad.Wu
* @Description Bilibili-视频信息表 映射
* @date 2022-12-22
*/
@Setter
@Getter
@ToString
@NoArgsConstructor
@Accessors(chain = true)
@TableName(value = "BILIBILI_VIDEO")

@Entity
@Table(name = "BILIBILI_VIDEO")
@DynamicInsert
@EntityListeners(AuditingEntityListener.class)
@Schema(description = "Bilibili-视频信息表 映射")
public class BilibiliVideoPo extends BasePo implements Serializable {
    @Serial
    private static final long serialVersionUID = 6476014006022376166L;
    @Schema(description = "AV号")
    @TableField(value = "AID")
    @Column(name = "AID", columnDefinition = "BIGINT(19) NOT NULL COMMENT 'AV号'")
    private Long aid;
    @Schema(description = "BV号")
    @TableField(value = "BVID")
    @Column(name = "BVID", columnDefinition = "VARCHAR(32) NOT NULL COMMENT 'BV号'")
    private String bvid;
    @Schema(description = "系统ID")
    @TableField(value = "CID")
    @Column(name = "CID", columnDefinition = "BIGINT(19) COMMENT '系统ID'")
    private Long cid;
    @Schema(description = "视频类型（例：鬼畜调教）")
    @TableField(value = "VIDEO_TYPE")
    @Column(name = "VIDEO_TYPE", columnDefinition = "VARCHAR(32) COMMENT '视频类型（例：鬼畜调教）'")
    private String videoType;
    @Schema(description = "视频标题")
    @TableField(value = "TITLE")
    @Column(name = "TITLE", columnDefinition = "VARCHAR(128) COMMENT '视频标题'")
    private String title;
    @Schema(description = "描述")
    @TableField(value = "DESCRIPTION")
    @Column(name = "DESCRIPTION", columnDefinition = "TEXT(65,535) COMMENT '描述'")
    private String description;
    @Schema(description = "提交审核时间")
    @TableField(value = "CTIME")
    @Column(name = "CTIME", columnDefinition = "DATETIME COMMENT '提交审核时间'")
    private Date ctime;
    @Schema(description = "发布时间")
    @TableField(value = "PUB_DATE")
    @Column(name = "PUB_DATE", columnDefinition = "DATETIME COMMENT '发布时间'")
    private Date pubDate;
    @Schema(description = "UP主ID")
    @TableField(value = "OWNER_ID")
    @Column(name = "OWNER_ID", columnDefinition = "BIGINT(19) NOT NULL COMMENT 'UP主ID'")
    private Long ownerId;
    @Schema(description = "UP主名称")
    @TableField(value = "OWNER_NAME")
    @Column(name = "OWNER_NAME", columnDefinition = "VARCHAR(32) NOT NULL COMMENT 'UP主名称'")
    private String ownerName;
    @Schema(description = "总播放数")
    @TableField(value = "VIEW")
    @Column(name = "VIEW", columnDefinition = "INT(10) COMMENT '总播放数'")
    private Integer view;
    @Schema(description = "历史累计弹幕数")
    @TableField(value = "DANMAKU")
    @Column(name = "DANMAKU", columnDefinition = "INT(10) COMMENT '历史累计弹幕数'")
    private Integer danmaku;
    @Schema(description = "评论数")
    @TableField(value = "REPLY")
    @Column(name = "REPLY", columnDefinition = "INT(10) COMMENT '评论数'")
    private Integer reply;
    @Schema(description = "点赞数")
    @TableField(value = "VIDEO_LIKE")
    @Column(name = "VIDEO_LIKE", columnDefinition = "INT(10) COMMENT '点赞数'")
    private Integer videoLike;
    @Schema(description = "投币数")
    @TableField(value = "COIN")
    @Column(name = "COIN", columnDefinition = "INT(10) COMMENT '投币数'")
    private Integer coin;
    @Schema(description = "收藏数")
    @TableField(value = "FAVORITE")
    @Column(name = "FAVORITE", columnDefinition = "INT(10) COMMENT '收藏数'")
    private Integer favorite;
    @Schema(description = "转发数")
    @TableField(value = "SHARE")
    @Column(name = "SHARE", columnDefinition = "INT(10) COMMENT '转发数'")
    private Integer share;
    @Schema(description = "历史最高排名")
    @TableField(value = "HIS_RANK")
    @Column(name = "HIS_RANK", columnDefinition = "INT(10) COMMENT '历史最高排名'")
    private Integer hisRank;
}
